/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var regExpedienteActual = null;
var regDocumentoActual = null;
var idFolios = null;
var indiceFolioActual = 0;
var localUsuario = null;

function cargarIdUsuario(){
    new Ajax.Request("../jsonUsuarioSesion.jsp",{
        method: "post",
        asynchronous:false,
        onSuccess: function(transport){
            var usuario=transport.responseText.evalJSON();
            localUsuario = usuario.nusua_identificador;
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function eliminarExpediente(){
    cargarIdUsuario();
    var frmCriterios = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: "frmCriterios.jsp"
    });
    var dsExpedientes = new Ext.data.Store({
        url: "obtener-expedientes-indices.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "expedientes",
            fields:[{
                name: "numeroExpediente"
            },{
                name: "nombreCompleto"
            },{
                name: "grado"
                
            },{
                name: "folios"
            },{
                name: "id"
            },{
                name: "idPolicial"
            }]
        })
    });
    dsExpedientes.on("load",function(store,records,options){
        if(records.length == 0){
            Information("Error", "No se encontró ningún expediente");
        }
    });

    var grdExpedientes = new Ext.grid.GridPanel({
        id: "grdExpedientes",
        store: dsExpedientes,
        height: 200,
        border: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Nro. Exp.",
            dataIndex: "numeroExpediente",
            width: 100
        },{
            header: "Causante",
            dataIndex: "nombreCompleto",
            width: 400
        },{
            header: "Grado",
            dataIndex: "grado",
            width: 180
        },{
            header: "Nro. Imagenes Exp",
            dataIndex: "folios",
            width: 120
        }]

    });
    grdExpedientes.on("rowclick", function(grid,rowIndex,e){
        regExpedienteActual = dsExpedientes.getAt(rowIndex);
        obtenerDocumentosExpediente();
    });
    var dsDocumentos = new Ext.data.Store({
        url: "obtener-documentos-expediente.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "documentos",
            fields:[{
                name: "id"
            },{
                name: "idTipoDocumento"
            },{
                name: "descripcionTipoDocumento"

            },{
                name: "descripcion"
            }]
        })
    });
    var grdDocumentos = new Ext.grid.GridPanel({
        id: "grdDocumentos",
        store: dsDocumentos,
        height: 200,
        border: false,
        columns:[new Ext.grid.RowNumberer(),{
            header: "Tipo Documento",
            dataIndex: "descripcionTipoDocumento",
            width: 150
        },{
            header: "Descripcion",
            dataIndex: "descripcion",
            width: 400
        }],
        tbar:[

        {
            text: "Ver Imagenes",
            iconCls:'icon-folio',
            handler: function(){
                verFolios();
            }
        },"-",
        {
            text: "Eliminar Documento",
            iconCls:'icon-delete',
            handler: function(){
                Ext.MessageBox.confirm("Confirmación", "¿Desea eliminar el documento? ", function(button){
                    if (button == "yes"){
                        eliminarDocumentoDigitalizado();
                    }
                });
                
            }
        }
        ]

    })
    grdDocumentos.on("rowclick", function(grid,rowIndex,e){
        regDocumentoActual = dsDocumentos.getAt(rowIndex);
    });
    var win = new Ext.Window({
        title:'Gestionar de Expedientes',
        closeAction:'destroy',
        width:900,
        height:500,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[frmCriterios,grdExpedientes,grdDocumentos],
        tbar:[
        {
            text: "Modificar Causante...",
            handler: function(){
                buscarPersonal();
            }
        }
        ]

    });
    win.show();
}


function buscarExpedientes(){
    var form = document.getElementById("frmCriterios");
    var opcion = 0;
    for(var i = 0;i<form.opcion.length;i++){
        if (form.opcion[i].checked){
            opcion = form.opcion[i].value;
            break;
        }
    }
    var criterio = form.criterio.value;
    var grdExpedientes = Ext.getCmp("grdExpedientes");
    var dsExpedientes = grdExpedientes.getStore();
    dsExpedientes.load({
        params: {
            opcion: opcion,
            criterio: criterio
        }
    });
}

function obtenerDocumentosExpediente(){
    var id = regExpedienteActual.get("id");
    
    var grdDocumentos = Ext.getCmp("grdDocumentos");
    var dsDocumentos = grdDocumentos.getStore();
    dsDocumentos.load({
        params:{
            id: id
        }
    });
}

function verFolios(){
    var id = regDocumentoActual.get("id");
    new Ajax.Request("obtener-folios-documento.jsp",{
        method: "post",
        parameters: {
            id: id
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            idFolios = data.folios;
            verFolio();
        }
    });
}

function verFolio(){
    var win = new Ext.Window({
        id: "winVistaPrevia",
        modal: true,
        title:'Vista Previa del Documento',
        closeAction:'destroy',
        width:800,
        height:500,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        autoScroll: true,
        autoLoad: {
            url:  "ver-folio.jsp",
            callback: function(el,success,response,options){
                if (idFolios.length == 0){
                    Information("Error", "No hay folios en este documento");
                } else {
                    verFolioIndice(0);
                }
               
            }
        },
        bbar: [{
            text:'Cerrar',
            iconCls:'icon-cancel',
            handler: function(){
                win.destroy();
            }
        },"-",{
            text: "Imprimir",
            iconCls: "icon-print",
            handler: function(){
                imprimirFolio();
            }
        },"-",{
            text: "Eliminar Imagen",
            iconCls: "icon-delete",
            handler: function(){
                Ext.MessageBox.confirm("Confirmación", "¿Desea eliminar la imagen digital? ", function(button){
                    if (button == "yes"){
                        eliminarFolio();
                    }
                });
            }
        }]
    });
    win.show();
}

function verFolioSiguiente(){
    indiceFolioActual++;
    if (indiceFolioActual > idFolios.length - 1) {
        indiceFolioActual = 0;
    }
    verFolioIndice(indiceFolioActual);
}

function verFolioAnterior(){
    indiceFolioActual--;
    if (indiceFolioActual < 1) {
        indiceFolioActual = idFolios.length - 1;
    }
    verFolioIndice(indiceFolioActual);
    
}

function verFolioActual(){
    var txtFolioActual = document.getElementById("txtFolioActual");
    indiceFolioActual = txtFolioActual.value - 1;
    verFolioIndice(indiceFolioActual);
}

function verFolioIndice(indice){
    var txtFolioActual = document.getElementById("txtFolioActual");
    txtFolioActual.value = indiceFolioActual + 1;
    var spnTotalFolios = document.getElementById("spnTotalFolios");
    spnTotalFolios.innerHTML = idFolios.length;
    var img = document.getElementById("imagenFolio");
    img.src = "../digitalizar/VistaPreviaFolio.jpg?id="+idFolios[indice].id;
}

function irFolioActual(e){
    tecla = (document.all) ? e.keyCode : e.which;
    if (tecla==13) verFolioActual();

}

function imprimirFolio(){
    var src = "../digitalizar/VistaPreviaFolio.jpg?id="+idFolios[indiceFolioActual].id;
    new Ajax.Request("imprimir-folio.jsp",{
        method: "post",
        parameters: {
            src : src
        },
        onSuccess: function(t){
            var w = window.open("about:blank", "imprimir");
            w.document.open();
            w.document.write(t.responseText);
            w.document.close();
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function eliminarDocumentoDigitalizado(){
    var idDocumento = regDocumentoActual.get("id");
    var idUsuario = localUsuario;
    new Ajax.Request("eliminar-documento.jsp",{
        method: "post",
        parameters : {
            idDocumento: idDocumento,
            idUsuario: idUsuario
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success){
                var grdDocumentos = Ext.getCmp("grdDocumentos");
                var dsDocumentos = grdDocumentos.getStore();
                var id = regExpedienteActual.get("id");
                //no carga
                dsDocumentos.load({
                    params:{
                        id: id
                    }
                });
            }
        }
    });
}

function eliminarFolio(){
    var idUsuario = localUsuario;
    var idFolio = idFolios[indiceFolioActual].id;
    new Ajax.Request("eliminar-folio.jsp",
    {
        method: "post",
        parameters: {
            idUsuario: idUsuario,
            idFolio: idFolio
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success){
                var win = Ext.getCmp("winVistaPrevia");
                win.destroy();
            }
        }
    });
}

function buscarPersonal() {
    if (regExpedienteActual == null){
        Information("Error", "Debe elegir un expediente");
        return;
    }
    regPersonaActual = null;
    var dsPersonal = new Ext.data.Store({
        url: "obtener-personal.jsp",
        autoDestroy: true,
        reader: new Ext.data.JsonReader({
            root: "personas",
            fields:[{
                name: "id"
            },{
                name: "nombreCompleto"
            },{
                name: "cpers_codofin",
                type: "string"
            },{
                name: "cpers_nrocip",
                type: "string"
            },{
                name: "cpers_unidad",
                type: "string"
            },{
                name: "cpers_nrodni",
                type: "string"
            },{
                name: "cgrad_descripcion",
                type: "string"
            }]
        })
    });

    var grdPersonal = new Ext.grid.GridPanel({
        id: "grdPersonal",
        store: dsPersonal,
        height: 300,
        border: true,
        plugins:[new Ext.ux.grid.Search({
            mode:'local',
            searchText: 'Filtrar sobre el resultado',
            iconCls:false,
            minLength:2,
            width: 350
        })],
        columns:[{
            header: "DNI",
            dataIndex: "cpers_nrodni",
            sortable:true,
            width: 80
        },{
            header: "Apellidos y Nombres",
            dataIndex: "nombreCompleto",
            width: 350
        },{
            header: "Nro CIP",
            dataIndex: "cpers_nrocip",
            sortable:true,
            width: 100
        },{
            header: "GRADO",
            dataIndex: "cgrad_descripcion",
            sortable:true,
            width: 150
        }],
        tbar:['']
    });

    grdPersonal.on("rowclick", function(grid,rowIndex,e){
        regPersonaActual = dsPersonal.getAt(rowIndex);
    });

    grdPersonal.on("rowdblclick", function(grid,rowIndex,e){
        seleccionarPersona();
    });

    var frmBuscarPersonal = new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: "frmBuscarPersonal.html"
    });

    var pnlBuscarPersonal = new Ext.Panel({
        items:[frmBuscarPersonal,grdPersonal]
    });

    var win = new Ext.Window({
        id: "winBuscarPersonal",
        modal: true,
        title:'Buscar en Maestro Policial - MASPOL',
        closeAction:'destroy',
        width:700,
        height: 400,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:[pnlBuscarPersonal],
        bbar:[{
            text: "Seleccionar",
            iconCls:'icon-selector',
            handler: function(){
                seleccionarPersona();
            }
        },'-',{
            text:'Cancelar',
            iconCls:'icon-cancel',
            handler: function(){
                var winBuscarPersonal = Ext.getCmp("winBuscarPersonal");
                winBuscarPersonal.destroy();
            }
        }]
    });
    win.show();
}

function filtrarPersonalMaspol(){
    if ($("apellidoPaterno").value!="" || $("apellidoMaterno").value!="" || $("nombres").value !="" ){
        if ($("apellidoPaterno").value.length >= 3 || $("apellidoMaterno").value.length >= 3 || $("nombres").value.length >= 3 ){
            obtenerPersonal();
        }else{
            alert("Debe ingresar por lo menos 3 letras en algun criterio para realizar la busqueda");
        }
    }else{
        alert("Debe ingresar un criterio de busqueda");
    }
}

function obtenerPersonal() {
    var grdPersonal = Ext.getCmp("grdPersonal");
    var dsPersonal = grdPersonal.getStore();
    var form = document.getElementById("frmBuscarPersonal");
    var apellidoPaterno = form.apellidoPaterno.value;
    var apellidoMaterno = form.apellidoMaterno.value;
    var nombres = form.nombres.value;
    dsPersonal.load({
        params: {
            apellidoPaterno: apellidoPaterno,
            apellidoMaterno: apellidoMaterno,
            nombres: nombres
        }
    });
}

function seleccionarPersona(){
    if (regPersonaActual == null) {
        Information("Error", "Debe seleccionar una persona");
        return;
    }
    var idCausanteNuevo = regPersonaActual.get("id");
    var nombreCausanteNuevo = regPersonaActual.get("nombreCompleto");
    var idExpediente = regExpedienteActual.get("id");
    var nombreCausanteActual = regExpedienteActual.get("nombreCompleto");
    var mensaje="¿Desea cambiar el causante de " + nombreCausanteActual + " a " + nombreCausanteNuevo +"?";
    Ext.MessageBox.confirm("Confirmación", mensaje, function(button){
        if(button=="yes"){
            cambiarCausante(idExpediente, idCausanteNuevo);
        }
    });
}

function cambiarCausante(idExpediente, idNuevo){
    new Ajax.Request("obtener-personal-policial.jsp",{
        method: "post",
        parameters: {
            id: idNuevo
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            var idPolicialNuevo = data.idPolicial;
            new Ajax.Request("cambiar-causante.jsp",{
                method: "post",
                parameters: {
                    idPolicial: idPolicialNuevo,
                    idExpediente: idExpediente
                },
                onSuccess: function(t){
                    var data = t.responseText.evalJSON();
                    if (data.success){
                        var winBuscarPersonal = Ext.getCmp("winBuscarPersonal");
                        winBuscarPersonal.destroy();
                        buscarExpedientes();
                        Information("Éxito", "Causante cambiado con éxito");
                    }
                },
                onFailure: function(t){
                    alert(t.responseText);
                }
            });
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
    
}



//Eliminar Expedientes

function fn_EliminarExpedientes_main(){
    var frmEliminarExpedientes= new Ext.Panel({
        bodyStyle: "background-color:#DFE8F6; border:0",
        autoLoad: {
            url: "frmCabeceraBuscarExpediente.html",
            callback: function(el,success,response,options){
            }
        }
    });


    var winEliminarExpedientes= new Ext.Window({
        id: "winEliminarExpedientes",
        modal: true,
        title:'Eliminar Expediente Digital',
        closeAction:'destroy',
        width:600,
        height: 200,
        x:0,
        y:0,
        shim:false,
        maximizable:false,
        resizable: false,
        animCollapse:false,
        items:frmEliminarExpedientes,
        bbar:[{
            text: "Eliminar",
            iconCls:'icon-delete',
            handler: function(){
                Ext.MessageBox.confirm("Confirmación", "¿Desea eliminar el expediente digital? ", function(button){
                    if (button == "yes"){
                        fn_EliminarExpediente();
                    }
                });
            }
        },'-',{
            text:'Cerrar',
            iconCls:'icon-cancel',
            handler: function(){
                var win= Ext.getCmp("winEliminarExpedientes");
                win.destroy();
            }
        }]
    });
    winEliminarExpedientes.show();
}

function fn_BuscarExpedienteDigital(){
    new Ajax.Request("obtener-datos-expediente.jsp",{
        method: "post",
        parameters: {
            expediente: document.getElementById("txtnumeroexpediente").value
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.nexpe_identificador >0){
                document.getElementById("txtidexpediente").value=data.nexpe_identificador;
                document.getElementById("txtapenom").value=data.cpers_apenom;
                document.getElementById("txtgrado").value=data.cgrad_descripcion;
                document.getElementById("txtfechacreacion").value=data.dexpe_fechacreacion;
                document.getElementById("txtnrofolios").value=data.nroFolios;
            }else{
                alert("No se encontro el expediente");
                fn_LimpiarBusquedaExpediente();
            }
        }
    });
}

function fn_EliminarExpediente(){
    new Ajax.Request("eliminar-expediente-digital.jsp",{
        method: "post",
        parameters: {
            nexpe_identificador: document.getElementById("txtidexpediente").value
        },
        onSuccess: function(t){
            var data = t.responseText.evalJSON();
            if (data.success){
                Information("Éxito", "El Expediente se elimino correctamente");
                fn_LimpiarBusquedaExpediente();
            }
        },
        onFailure: function(t){
            alert(t.responseText);
        }
    });
}

function fn_LimpiarBusquedaExpediente(){
    document.getElementById("txtidexpediente").value="";
    document.getElementById("txtapenom").value="";
    document.getElementById("txtgrado").value="";
    document.getElementById("txtfechacreacion").value="";
    document.getElementById("txtnrofolios").value="";
}